#ifndef _VOL_CXIMAGE_H
#define _VOL_CXIMAGE_H

#include <cximage/ximage.h>
#include <cximage/ximagif.h>
#include <cximage/ximamng.h>
#include <tiff/tiff.h>
#include <cximage/ximajpg.h>

class CxImageExifInfoWrapper
{
	protected:
		EXIFINFO* m_imgInfo;	//由CxImage管理,本类无需释放
	
	public:
		inline_ CxImageExifInfoWrapper() { m_imgInfo = NULL; }
		
		inline_ EXIFINFO* GetImageInfoPtr() { return m_imgInfo; }
		
		inline_ void SetImageInfoPtr(EXIFINFO* pInfo) { m_imgInfo = pInfo; }
};

template <class T> class CxImageAbstractWrapper
{
	protected:
		T m_image;
	
	public:
		inline_ T* GetImagePtr()
		{
			return &m_image;
		}
};

class CxImageWrapper : public CxImageAbstractWrapper<CxImage>
{
	public:
		//拷贝指定指针的属性到当前对象,Copy()实现.
		inline_ BOOL TakeOverImageWithPtr(CxImage* pImage)	
		{
			if (pImage)
			{
				m_image = *pImage;
				return TRUE;
			}
			return FALSE;
		}
};

class CxGifImageWrapper : public CxImageAbstractWrapper<CxImageGIF>
{
};

class CxMngImageWrapper : public CxImageAbstractWrapper<CxImageMNG>
{
};

#endif /* _VOL_CXIMAGE_H */